4 research outputs found

    Meerkat: A framework for Dynamic Graph Algorithms on GPUs

    Full text link
    Graph algorithms are challenging to implement due to their varying topology and irregular access patterns. Real-world graphs are dynamic in nature and routinely undergo edge and vertex additions, as well as, deletions. Typical examples of dynamic graphs are social networks, collaboration networks, and road networks. Applying static algorithms repeatedly on dynamic graphs is inefficient. Unfortunately, we know little about how to efficiently process dynamic graphs on massively parallel architectures such as GPUs. Existing approaches to represent and process dynamic graphs are either not general or inefficient. In this work, we propose a library-based framework for dynamic graph algorithms that proposes a GPU-tailored graph representation and exploits the warp-cooperative execution model. The library, named Meerkat, builds upon a recently proposed dynamic graph representation on GPUs. This representation exploits a hashtable-based mechanism to store a vertex's neighborhood. Meerkat also enables fast iteration through a group of vertices, such as the whole set of vertices or the neighbors of a vertex. Based on the efficient iterative patterns encoded in Meerkat, we implement dynamic versions of the popular graph algorithms such as breadth-first search, single-source shortest paths, triangle counting, weakly connected components, and PageRank. Compared to the state-of-the-art dynamic graph analytics framework Hornet, Meerkat is 12.6×12.6\times, 12.94×12.94\times, and 6.1×6.1\times faster, for query, insert, and delete operations, respectively. Using a variety of real-world graphs, we observe that Meerkat significantly improves the efficiency of the underlying dynamic graph algorithm. Meerkat performs 1.17×1.17\times for BFS, 1.32×1.32\times for SSSP, 1.74×1.74\times for PageRank, and 6.08×6.08\times for WCC, better than Hornet on average

    DH-Falcon: A language for large-scale graph processing on Distributed Heterogeneous systems

    No full text
    Graph models of social information systems typically contain trillions of edges. Such big graphs cannot be processed on a single machine. The graph object must be partitioned and distributed among machines and processed in parallel on a computer cluster. Programming such systems is very challenging. In this work, we present DH-Falcon, a graph DSL (domain-specific language) which can be used to implement parallel algorithms for large-scale graphs, targeting Distributed Heterogeneous (CPU and GPU) clusters. DH-Falcon compiler is built on top of the Falcon compiler, which targets single node devices with CPU and multiple GPUs. An important facility provided by DH-Falcon is that it supports mutation of graph objects, which allows programmer to write dynamic graph algorithms. Experimental evaluation shows that DH-Falcon matches or outperforms state-of-theart frameworks and gains a speedup of up to 13x
    corecore